package com.dong.jdk6.jvm;

import java.util.ArrayList;
import java.util.List;

/**
 * 方法区也是所有线程共享。主要用于存储类的信息、常量池、方法数据、方法代码等。方法区逻辑上属于堆的一部分，但是为了与堆进行区分，通常又叫“非堆”。
 * 我们现在通过动态生成类来模拟 “PermGen space”的内存溢出：
 * VM option: -XX:PermSize=8m -XX:MaxPermSize=8m
 * Created by jianyang206881 on 2017/9/27.
 */
public class PermGenOomTest {
    static String base = "string";

    public static void main(String[] args) {

        List<String> list = new ArrayList<String>();
        for (int i = 0; i < Integer.MAX_VALUE; i++) {
            String str = base + base;
            base = str;
            list.add(str.intern());
        }
    }
}
